package com.classinfomation;

/**
 * @author xuehu
 * @date 2021/1/28 10:18
 * 4.组合(Composition)
 * 组合关系，是关联关系的一种，是比聚合关系强的关系。
 * 它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期，组合关系是不能共享的。
 * 代表整体的对象需要负责保持部分对象和存活，
 * 在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象，由后者负责此对象的生命周期。换言之，代表部分的对象在每一个时刻只能与一个对象发生组合关系，由后者排他地负责生命周期。部分和整体的生命周期一样。
 */

public class CompositionTest {

    public static void main(String[] args) {
        CompositionTest dependencyTest = new CompositionTest();
        Chef chef = dependencyTest.new Chef();


        chef.cutting("carrot");


    }

    /**
     * 菜刀
     */
    static class Kinfe {
        public void cutting(String name) {
            System.out.println("切" + name);
        }
    }

    /**
     * 厨师
     */
    class Chef {
        Kinfe kinfe = new Kinfe();

        public void cutting(String vegetables) {
            kinfe.cutting(vegetables);
        }

    }

}